《Neural Graph Collaborative Filtering》
个性化推荐无处不在,已广泛应用于电商、广告、社交媒体等众多在线服务。个性化推荐的核心是根据购买和点击等历史交互(historical interaction)来估计用户接受某个 item 的可能性。
协同过滤(collaborative filtering: CF)通过假设行为相似的用户对 item 表现出相似的偏好来解决这个问题。为了实现这个假设,一个常见的范式(paradigm)是参数化(parameterize)用户和 item 以重建历史交互,并根据参数(parameter)来预估用户偏好。
一般而言,可学习的 CF 模型有两个关键组件(key component):
embedding:将用户和 item 转换为向量化的 representation 。
交互建模:基于 embedding 重建历史交互。
例如:
矩阵分解( matrix factorization: MF)直接将 user id / item id 映射到 embedding 向量,并使用内积对 user-item 交互进行建模。
协同深度学习(collaborative deep learning)通过整合从 item 的丰富的辅助信息(side information)中学到的 deep representation来扩展 MF embedding function 。
神经协同过滤模型(neural collaborative filtering model)用非线性神经网络代替 MF的内积交互函数。
translation-based CF model 使用欧氏距离作为交互函数。
尽管这些方法很有效,但是我们认为它们不足以为 CF 产生令人满意的 embedding。关键原因是embedding 函数缺乏关键协同信号(collaborative signal)的显式编码,这种编码隐藏在user-item 交互中从而揭示用户(或 item)之间的行为相似性。更具体而言,大多数现有方法仅使用描述性特征(例如 ID 和属性)来构建 embedding 函数,而没有考虑 user-item 交互。因此,由此产生的 embedding 可能不足以捕获协同过滤效果(effect)。user-item 交互仅用于定义模型训练的目标函数。因此,当 embedding 不足以捕获 CF 时,这些方法必须依靠交互函数来弥补次优( suboptimal)的 embedding 的不足。
虽然将 user-item 交互集成到 embedding 函数中在直观上很有用,但是要做好并非易事。特别是在实际应用中,user-item交互的规模很容易达到数百万甚至更大,这使得提取所需要的的协同信号变得困难。在论文 《Neural Graph Collaborative Filtering》 中,作者通过利用来自 user-item 交互的高阶连通性(high-order connectivity)来应对这一挑战,这是一种在交互图结构(interaction graph structure)中编码协同信号的自然方式。
下图说明了高阶连通性的概念。待推荐的用户是 user-item 交互图的左子图中用双圆圈来标记。右子图显示了从
路径 item
更长的路径 item
此外,从 item item

论文提出对 embedding 函数中的高阶连通性信息进行建模。论文没有将交互图扩展为实现起来很复杂的树,而是设计了一种神经网络方法在图上递归地传播 embedding 。这是受到图神经网络最近发展的启发,可以将其视为在 embedding 空间中构建信息流(information flow)。具体而言,作者设计了一个 embedding propagation layer ,它通过聚合交互的item (或者user)的 embedding 来改进refine 用户(或者 item)的 embedding 。通过堆叠多个 embedding propagation layer ,模型可以显式强制 embedding 来捕获高阶连通性中的协同信号。以上图为例,堆叠两层可以捕获
论文在三个公共 benchmark 上进行了广泛的实验,验证了神经图协同过滤(Neural Graph Collaborative Filtering: NGCF)方法的合理性和有效性。
最后值得一提的是,尽管在最近的一种名叫 HOP-Rec 的方法中已经考虑了高阶连通性信息,但是它仅用于丰富训练数据。具体而言,HOPRec 的预测模型仍然是 MF,而且它是通过优化用高阶连通性增强的损失函数来训练的。和 HOP-Rec 不同,NGCF 贡献了一种新技术将高阶连通性集成到预测模型中,从经验上讲,它比 HOP-Rec 更好地嵌入 CF 。
总而言之,论文的主要贡献:
论文强调在基于模型的 CF 方法的 embedding 函数中利用协同信号的重要性。
论文提出了 NGCF,这是一种基于图神经网络的新推荐框架,它通过执行 embedding 传播,以高阶连通性的形式对协同信号进行显式编码。
论文对三个百万规模的数据集进行实证研究。大量结果证明了 NGCF 的 SOTA 性能,以及通过神经embedding 传播来提高 embedding 质量方面的有效性。
论文回顾了现有的 model-based CF、graph-based CF、基于图神经网络的方法的现有工作,这些方法和本文的工作最为相关。这里,论文强调这些方法和 NGCF 的不同之处。
Model-Based CF 方法:现代推荐系统通过向量化表示(vectorized representation)来参数化( parameterize )用户和 item ,并基于模型参数重建 user-item 交互数据。例如,MF 将每个 user ID 和 item ID 投影为 embedding 向量,并在它们之间进行内积以预测交互。为了增强 embedding 函数,已经付出了很多努力来融合诸如 item content、社交关系、item 关系、用户评论、外部知识图谱等辅助信息(side information)。
虽然内积可以迫使观察到的、交互的 user embedding 和 item embedding 彼此接近,但是其线性不足以揭示用户和 item 之间复杂的非线性关系。为此,最近的努力侧重于利用深度学习技术来增强交互函数,从而捕获用户和 item 之间的非线性特征交互。例如,神经协同模型(如 NeuMF)采用非线性神经网络作为交互函数。同时,基于翻译的 CF 模型,例如 LRML 用欧氏距离来建模交互强度(interaction strength)。
尽管取得了巨大的成功,但我们认为 embedding 函数的设计不足以为协同过滤产生最佳的 embedding ,因为协同过滤信号只能被隐式( implicitly)地捕获。总结这些方法,embedding 函数将描述性特征(descriptive feature)(如 ID 特征和属性特征)转换为向量,而交互函数作为向量上的相似性度量。理想情况下,当 user-item 交互被完美重建时,行为相似性的传递特性(transitivity property)可以被捕获。然而,前面示例(高阶连通性概念的示例)中显示的这种传递效应(transitivity effect)并没有被显式地编码,因此无法保证间接连接的用户和 item 在 embedding 空间中也是接近的。如果没有对协同信号进行显式编码,就很难获得满足所有特性的 embedding 。
即,传统的方法仅优化了
user-item的一阶邻近性,并没有优化高阶邻近性。另外这种邻近性并不是在模型结构中显式编码的,而是通过目标函数来优化的。
Graph-Based CF 方法:另一个研究方向利用 user-item interaction graph 来推断用户偏好。
早期的努力,如 ItemRank 和 BiRank 采用标签传播的思想来捕获协同效应(CF effect)。为了给一个用户在所有item 上打分,这些方法将用户历史交互的item打上label ,然后在图上传播标签。由于推荐分是基于历史互动item 和目标 item 之间的结构可达性(structural reachness)(可以视为一种相似性)而获得的,因此这些方法本质上属于基于邻域(neighbor-based)的方法。然而,这些方法在概念上不如基于模型的协同过滤方法,因为它们缺乏模型参数来优化推荐目标函数(既没有模型参数、又没有目标函数、更没有优化过程)。
最近提出的 HOP-Rec 方法通过将基于图的方法和基于 embedding 的方法相结合来缓解这个问题(缺乏模型参数来优化推荐目标函数的问题)。该方法首先执行随机游走以丰富用户和 multi-hop 连接的 item 之间的交互。然后它基于丰富的user-item 交互数据(通过高阶连通性增强的正样本)训练具有 BPR 目标函数的 MF 从而构建推荐模型。HOP-Rec 优于 MF 的性能证明,结合连通性信息有利于在捕获CF 效应时获得更好的 embedding 。然而,我们认为 HOP-Rec 没有充分探索高阶连通性,它仅仅用于丰富训练数据,而不是直接有助于模型的 embedding 函数(因为推断时不会用到正样本增强技术,而是用到 embedding 函数)。此外,HOP-Rec 的性能在很大程度上取决于随机游走,这需要仔细地调优,例如设置合适的衰减因子。
图卷积网络(Graph Convolutional Network):通过在 user-item 交互图上设计专门的图卷积运算,我们使 NGCF 有效地利用高阶连通性中的 CF 信号。这里我们讨论现有的、也采用图卷积运算的方法。
GC-MC 在 user-item 交互图上应用了图卷积网络(graph convolution network: GCN),但是它仅使用一个卷积层来利用 user-item 之间的直接连接。因此,它无法揭示高阶连通性中的协同信号。
PinSage 是一个工业解决方案,它在 item-item 图中采用了多个图卷积层从而进行 Pinterest 图像推荐。因此,CF 效应是在 item 关系的层面上捕获的,而不是在集体(collective)的用户行为的层面上。
Spectral CF 提出了一种谱卷积操作来发现谱域中用户和 item 之间的所有可能的连接。通过图邻接矩阵的特征分解,可以发现 user-item pair 对之间的连接。然而,特征分解导致了很高的计算复杂度,非常耗时并且难以支持大规模的推荐场景。
NGCF 模型的架构如下图所示(给出了用户 item affinity score ),其中包含三个组件(components):
一个 embedding 层:提供 user embedding 和 item embedding 。
多个 embedding 传播层:通过注入高阶连通性关系来refine embedding。
一个prediction 层: 聚合来自不同传播层的 refined embedding 并输出 user-item 的相似性得分(affinity score)。

遵循主流推荐模型,我们用 embedding 向量 embedding 向量 item embedding 维度。这可以看做是将参数矩阵( parameter matrix)构建为 embedding look-up table:
其中 item 数量。
值得注意的是,这个 embedding table 作为 user embedding 和 item embedding 的初始状态(refine 之前的状态),并以端到端的方式进行优化。
在传统的推荐模型如 MF 和神经协同过滤中,这些 ID embedding 直接输入一个交互层(interaction layer)来实现分数预估。
相比之下,在我们的 NGCF 框架中,我们通过在 user-item 交互图上传播 embedding 来 refine embedding。这导致了对推荐更有效的 embedding ,因为 embedding 的 refinement 步骤显式地将协同信号注入到 embedding 中。
接下来我们基于 GNN 的消息传递框架,沿着图结构捕获协同信号并优化 user embedding 和 item embedding。我们首先说明单层embedding 传播层(Embedding Propagation Layer)的设计,然后将其推广到多个连续传播层。
一阶传播 First-order Propagation:直观地,交互的item 提供了关于用户偏好的直接证据。类似地,消耗一个item 的用户可以被视为item 的特征,并用于度量两个item 的协同相似性(collaborative similarity)。我们在此基础上在连接(connected)的用户和 item 之间执行 embedding 传播,用两个主要操作来形式化(formulating)流程:消息构建(message construction)和消息聚合(message aggregation)。
消息构建:对一个连接的 user-item pair 对
其中:
message embedding。
message encoding 函数,函数的输入为 item embedding user embedding
系数 edge decay factor)。
在本文中,我们定义
其中:
item 数量),item
与仅考虑 graph convolution network)不同,这里我们额外将 affinity),例如从相似的item 传递更多消息。这不仅提高了模型的表示能力(representation ability),还提高了推荐性能。
遵循图卷积网络,我们将 graph Laplacian norm) item
从representation learning 的角度来看,item 对用户偏好的贡献程度。
从消息传递的角度来看,考虑到被传播的消息应该随着路径长度(path length)衰减,discount factor)。
消息聚合:在这一阶段,我们聚合从用户 refine 用户 representation 。具体而言,我们定义聚合函数为:
其中:
embedding 传播层之后获得的用户 representation 。
LeakyReLU 激活函数允许消息对正(positive)信号和小负(negative)信号进行编码。
除了从邻域 self-connection):
这个自连接保留了
注意:这里的
类似地,我们可以通过与item 连接的用户传播的消息来获得 item representation
总而言之,embedding 传播层的优势在于显式利用一阶连通性信息来关联 user representation 和 item representation 。
在广告和推荐场景中,
item的直接邻域(和 item有互动的用户集合)可能高达百万甚至千万级别,而用户 的直接邻域(用户 互动的历史 item集合)通常都比较小。如何处理这种非对称的、庞大的邻域是一个难点。
高阶传播(High-order Propagation):基于一阶连通性(first-order connectivity)建模来增强representation ,我们可以堆叠更多 embedding 传播层来探索高阶连通性(high-order connectivity)信息。这种高阶连通性对于编码协同信号以估计用户和 item 之间的相关性分数(relevance score)至关重要。通过堆叠 embedding 传播层,用户(或者 item)能够接收来自 L-hop 邻居传播的消息。
在第 representation 被递归地表示为:
其中被传播的消息定义为:
其中:
注意:这里对于
item representation,它记住了 (l-1) - hop 邻域的消息。
user representation,它也也记住了 (l-1) - hop 邻域的消息。
类似地,我们也可以得到item representation 。
如下图所示为针对用户 embedding 传播,像 embedding 传播过程中捕获。即,来自 embedding 传播层无缝地将协同信号注入到 representation learning 过程。

矩阵形式的传播规则(Propagation Rule in Matrix Form):为了提供embedding 传播的整体视图(holistic view),并便于batch 实现,我们提供了 layer-wise 传播规则的矩阵形式:
其中:
embedding 传播层得到的用户 representation 和 item representation 。 representation ,即
user-item graph 的拉普拉斯矩阵:
其中 user-item 交互矩阵,degree matrix)(
因此
它就是
通过实现矩阵形式的传播规则,我们可以用一种相当有效的方式同时更新所有用户和所有 item 的 representation。这种方式允许我们抛弃节点采样过程(这个节点采样过程通常用于图卷积网络,使得图卷积网络可以应用于大规模的graph)。
对于工业场景海量用户(如十亿级)和海量
item(如亿级),那么矩阵形式是不可行的,因为现有的计算资源无法处理如此规模的矩阵。
经过 representation ,即 representation 强调通过不同连通性传递的消息,因此它们在反映用户偏好方面有不同的贡献。因此,我们将这些 representation 拼接起来,构成用户 representation 。
对于item item representaiton item representation 。最终我们得到 user representation 和 item representation 为:
其中 || 表示向量拼接。
通过这种方式,我们不仅用 embedding 传播层丰富了initial embeddings (即 embedding 层得到的初始 embedding ),还允许通过调整
注意,除了拼接之外,还可以应用其它聚合方式,如加权平均、最大池化、LSTM 等,这意味着在组合不同阶次的连通性时有不同的假设。使用拼接聚合的优势在于它的简单性,因为它不需要学习额外的参数,并且它已经在最近的图神经网络中证明非常有效。
最后,我们使用内积来估计用户 item
在这项工作中,我们强调embedding 函数的学习,因此仅使用内积这种简单的交互函数。其它更复杂的选择,如基于神经网络的交互函数,留待未来的研究工作。
为了学习模型参数,我们优化了在推荐系统中广泛应用的 pairwise BPR loss 。该损失函数考虑了观察到的和未观察到的 user-item 交互之间的相对顺序。
具体而言,BPR 假设观察到的 user-item 交互更能够反映用户的偏好,因此应该比未观察到的交互分配更高的预测值。因此目标函数为:
其中:
pairwise 训练数据。
sigmoid 函数。
L2 正则化系数。
我们使用 mini-batch 的 Adam 优化算法来优化预估模型。具体而言,对于一个 batch 的随机采样的三元组 L 步传播之后建立它们的 representation
模型大小(Model Size):值得指出的是,尽管 NGCF 在每个传播层 embedding 矩阵 embedding 矩阵来自于 embedding look-up table user-item 图结构和权重矩阵转换而来。
因此,和最简单的、基于 embedding 的推荐模型 MF 相比,我们的 NGCF 只是多了 5 的数,并且 embedding size(远小于用户数量和 item 数量),因此这个额外的参数规模几乎可以忽略不计。
例如,在我们实验的 Gowalla 数据集(20k 用户和 40k item )上,当 embedding size = 64并且我们使用3 个尺寸为 64 x 64 的传播层时,MF 有 450 万参数,而我们的 NGCF 仅使用了 2.4 万额外的参数。
总之,NGCF 使用很少的额外参数来实现高阶连通性建模。
Message and Node Dropout:虽然深度学习模型具有很强的表示能力,但通常会出现过拟合现象。Dropout 是防止神经网络过拟合的有效解决方案。遵从图卷积网络的前期工作,我们提出在 NGCF 中采用两种 dropout 技术:message dropout 和 node dropout 。
message dropout:随机丢弃传出的消息(outgoing message)。具体而言,我们以概率 refine representation 。
node dropout:随机阻塞一个节点并丢弃该节点传出的所有消息。对于第 dropout ratio 。
注意,dropout 仅用于训练并且必须在测试期间禁用。
message dropout 使得 representaion 对于 user-item 之间单个连接具有更强的鲁棒性,而node dropout 则侧重于减少特定用户或特定 item 的影响。我们在实验中研究 message dropout 和 node dropout 对于 NGCF 的影响。
这里我们首先展示 NGCF 如何推广 SVD++,然后我们分析 NGCF 的时间复杂度。
NGCF 和 SVD++:SVD++ 可以看做是没有高阶传播层的 NGCF 的特例。
具体而言,我们将 1。在传播层中,我们禁用了转换矩阵和非线性激活函数。然后,item representation 。我们把这个简化模型称作 NGCF-SVD,它可以表述为:
显然,通过分别设置 SVD++ 模型。
此外,另一个广泛使用的 item-based CF 模型 FISM 也可以被视为 NGCF 的特例,其中上式中
时间复杂度:我们可以看到,逐层(layer-wise)传播规则是主要的操作。
对于第
对于预测层只涉及内积,它的时间复杂度为
因此,NGCF 的整体复杂度为 MF 和 NGCF 在 Gowalla 数据集上的训练成本分别为 20 秒左右和 80 秒左右,在推断期间MF 和 NGCF 的时间成本分别为 80 秒和 260 秒。
我们在真实世界的三个数据集上进行实验,从而评估我们提出的方法,尤其是 embedding 传播层。我们旨在回答以下研究问题:
RQ1:和 SOTA 的 CF 方法相比,NGCF 的表现如何?
RQ2:不同的超参数setting (如,层的深度、embedding 传播层、layer-aggregation 机制、message dropout、node dropout )如何影响 NGCF?
RQ3:如何从高阶连通性中受益?
数据集:我们选择三个 benchmark 数据集Gowalla、Yelp2018、Amazon-book。这些数据集可公开访问,并且在领域、规模、稀疏性等方面各不相同。
Gowalla 数据集:这是从 Gowalla 获得的 check-in 数据集,用户通过 checking-in 来共享他们的位置(location)。为了确保数据集的质量,我们使用 10-core setting,即保留至少有十次交互的用户和 item 。
Yelp2018:来自2018 年的 Yelp 挑战赛的数据集,其中餐馆、酒吧等当地企业被视为 item 。为了确保数据质量,我们也使用 10-core setting 。
Amazon-book:Amazon-review 是一个广泛使用的产品推荐数据集,这里我们从中选择了 Amazon-book 。同样地,我们使用 10-core setting 来确保每个用户和每个 item 至少有十次交互。
对于每个数据集,我们随机选择每个用户 80% 的历史交互构成训练集,其余的 20% 历史交互作为测试集。在训练集中,我们随机选择 10% 的交互作为验证集来调整超参数。
对于每个观察到的 user-item 交互,我们将其视为一个正样本,然后进行负采样策略:将用户和历史没有互动的负item 构建 pair 对。
这些数据集的统计信息如下表所示。

评估指标:对于测试集中的每个用户,我们将用户未交互的所有 item 视为负item。然后每个方法输出用户对所有 item (除了训练集中的正item )的偏好分。为了评估 top-K 推荐和偏好排序(preference ranking),我们采用了两种广泛使用的评估指标:recall@K 和 ndcg@K ,默认情况下 K=20 。我们报告测试集中所有用户的平均指标。
baseline 方法:为了证明有效性,我们将 NGCF 方法和以下方法进行比较:
MF:这是通过贝叶斯个性化排名(Bayesian personalized ranking: BPR)损失函数优化的矩阵分解方法,它仅利用 user-item 直接交互作为交互函数的目标值(target value)。
NeuMF:这是SOTA 的神经网络协同过滤模型。该方法拼接 user embedding 和 item embedding ,然后使用多个隐层从而捕获用户和 item 的非线性特征交互。具体而言,我们采用两层的普通架构,其中每个隐层的维度保持不变。
CMN:这是SOTA 的 memory-based 模型,其中user representation 通过memory layer 有意地组合相邻用户的 memory slot 。注意,一阶连接用于查找和相同item 交互的相似用户。
HOP-Rec:这是一个SOTA 的 graph-based 模型。该方法利用从随机游走得到的高阶邻居来丰富 user-item 交互数据。
PinSage:该方法在 item-item graph 上应用 GraphSAGE。在这里,我们将该方法应用于 user-item 交互图。具体而言,我们采用了两层图卷积层,并且隐层维度设为 embedding size。
GC-MC:该模型采用 GCN encoder 来生成 user representations 和 item representation ,其中仅考虑一阶邻居。具体而言,我们使用一层图卷积层,并且隐层维度设为 embedding size。
我们也尝试了 Spectral CF,但是发现特征分解导致很高的时间成本和资源成本,尤其是当用户数量和 item 数量很大时。因此,尽管该方法在小数据集上取得了不错的性能,但是我们没有选择和它进行比较。
为了公平地比较,所有方法都优化了 BPR loss。
参数配置:我们在 Tensorflow 中实现了我们的 NGCF 模型。
所有模型的 embedding size 固定为 64 。
对于 HOP-Rec,我们选择随机游走 step 的调优集合为 {1,2,3},学习率的调优集合为 {0.025, 0.020, 0.015, 0.010} 。
我们使用 Adam 优化器优化除了 HOP-Rec 之外的所有模型,其中 batch size 固定为 1024 。
在超参数方面,我们对超参数应用网格搜索:学习率搜索范围 {0.0001, 0.0005, 0.001, 0.005}、L2 正则化系数搜索范围 dropout ratio 搜索范围 {0.0, 0.1, ... , 0.8} 。
此外,我们对 GC-MC 和 NGCF 应用node dropout 技术,其中 dropout ratio 搜索范围为 {0.0, 0.1, ... , 0.8} 。
我们使用 Xavier 初始化器来初始化模型参数。
我们执行早停策略:如果在连续 50 个 epoch 中,验证集的 recall@20 指标没有提升,则提前停止训练。
为了建模三阶连通性,我们将 NGCF L 的深度设置为 3 。在没有特殊说明的情况下,我们给出了三层embedding 传播层的结果,node dropout ratio = 0.0、message dropout ratio = 0.1 。
我们从比较所有方法的性能开始,然后探索高阶连通性建模如何提升稀疏环境下的性能。
下表报告了所有方法性能比较的结果。可以看到:
MF 在三个数据集上的表现不佳。这表明内积不足以捕获用户和 item 之间的复杂关系,从而限制了模型性能。
NeuMF 在所有情况下始终优于 MF,证明了user embedding 和 item embedding 之间非线性特征交互的重要性。
然而,MF 和 NeuMF 都没有显式地对 embedding 学习过程中的连通性进行建模,这很容易导致次优suboptimal 的representation 。
与 MF 和 NeuMF 相比,GC-MC 的性能验证了融合一阶邻居可以改善 representation learning。
然而,在 Gowalla 中, GC-MC 在 ndcg@20 指标行不如 NeuMF。原因可能是 GC-MC 未能充分探索用户和 item 之间的非线性特征交互。
大多数情况下,CMN 通常比 GC-MC 得到更好的性能。这种改进可能归因于神经注意力机制(neural attention mechanism),它可以指定每个相邻用户的注意力权重,而不是 GC-MC 中使用的相同权重、或者启发式权重。
PinSage 在 Gowalla 和 Amazon-Book 中的表现略逊于 CMN,但是在 Yelp2018 中的表现要好得多。同时 HOP-Rec 在大多数情况下总体上取得了显著的提升。
这是讲得通的,因为 PinSage 在 embedding 函数中引入了高阶连通性, HOP-Rec 利用高阶邻居来丰富训练数据,而 CMN 只考虑相似的用户。因此,这表明了对高阶连通性或高阶邻居建模的积极影响。
NGCF 始终在所有数据集上产生最佳性能。具体而言,NGCF 在 Gowalla、Yelp2018、Amazon-Book 数据集中在 recall@20 方面比最强baseline 分别提高了 11.68%、11.97%、9.61% 。
通过堆叠多个 embedding 传播层,NGCF 能够显式探索高阶连通性,而 CMN 和 GC-MC 仅利用一阶邻居来指导 representation learning 。这验证了在 embedding 函数中捕获协同信号的重要性。
此外,和 PinSage 相比,NGCF 考虑多粒度表示(multi-grained representation)来推断用户偏好,而 PinSage 仅使用最后一层的输出。这表明不同的传播层在 representation 中编码不同的信息。
并且,对 HOP-Rec 的改进表明 embedding 函数中的显式编码 CF 可以获得更好的representation。
HOP-Rec效果也不错,而且计算复杂度不高、简单易于实现。
我们进行 one-sample 的 t-test,p-value < 0.05 表明 NGCF 对最强baseline(下划线标明)的改进在统计上是显著的。

稀疏性问题通常限制了推荐系统的表达能力,因为不活跃用户的少量交互不足以生成高质量的 representation 。我们考察利用连通性信息(connectivity information)是否有助于缓解稀疏性问题。为此,我们对不同稀疏性水平的用户组(user group)进行了实验。
具体而言,基于每个用户的交互次数,我们将测试集分为四组,每组的用户具有相同的交互次数。以 Gowalla 数据集为例,每个用户的交互次数分别小于 24、50、117、1014 。
下图展示了 Gowalla、Yelp 2018、Amazon-Book 数据集的不同用户组中关于 ndcg@20 的结果。背景的直方图表示每个分组中的用户量,曲线表示 ndcg@20 指标。我们在 recall@20 方面看到了类似的性能趋势,但是由于空间限制而省略了该部分。
可以看到:
NGCF 和 HOP-Rec 始终优于所有用户组的所有其它 baseline 。这表明利用高阶连通性可以极大地促进非活跃用户的 representation learning,因为可以有效地捕获协同信号。因此,解决推荐系统中的稀疏性问题可能是有希望的,我们将其留待未来的工作中。
联合分析图 (a),(b),(c) ,我们观察到前两组取得的提升(例如,在 Gowalla 数据集中NGCF对于 < 24 和 < 50 的最佳 baseline 上分别提高了 8.49% 和 7.79%)比其它组更为显著(例如,在 Gowalla 数据集中NGCF对于 < 1014 的最佳 baseline 提高了 1.29% )。这验证了 embedding 传播有利于相对不活跃的用户。

由于 embedding 传播层在 NGCF 中起着举足轻重的作用,因此我们研究了它对于性能的影响。
我们首先探索层数的影响,然后我们研究拉普拉斯矩阵(即用户 item
此外,我们分析了关键因素的影响,例如 node dropout 和 message dropout 。
最后,我们还研究了 NGCF 的训练过程。
层数的影响:为了研究 NGCF 是否可以从多个 embedding 传播层中受益,我们改变了模型深度。具体而言,我们探索了层数为 {1,2,3,4} 。下表给出了实验结果,其中 NGCF-3 表示具有三层 embedding 传播层的模型,其它符号类似。联合下表和上表(所有方法性能比较结果表)可以看到:
增加 NGCF 的深度可以大大提升推荐效果。显然,NGCF-2 和 NGCF-3 在所有方面都比 NGCF-1 实现了一致的提升,因为 NGCF-1 仅考虑了一阶邻居。
我们将所有提升归因于 CF 效应的有效建模:协同用户相似性(collaborative user similarity)和协同信号(collaborative signal)分别由二阶连通性和三阶连通性承载(carried)。
当在 NGCF-3 之后进一步堆叠传播层时,我们发现 NGCF-4 在 Yelp 2018 数据集上过拟合。这可能是因为太深的架构会给 representation learning 带来噪音。
而其它两个数据集上的边际提升证明了三层传播层足以捕获 CF 信号。
当传播层数变化时,NGCF 在三个数据集上始终优于其它方法。这再次验证了 NGCF 的有效性,从而表明显式建模高阶连通性可以极大地促进推荐任务。

embedding 传播层的效果和 Layer-Aggregation 机制:为了研究 embedding 传播层(即图卷积层)如何影响性能,我们考虑了使用使用不同layer 的 NGCF-1 变体。
具体而言,我们从消息传递函数中删除了节点及其邻居之间的representation 交互,并将其设置为 PinSage 和 GC-MC 的representation 交互,分别称为
对于
其中
缺少 和 的交互,也缺少图拉普拉斯范数。
对于
其中:
此外,基于 NGCF-SVD ,我们得到 NGCF 的关于SVD++ 的变体,称作
我们在下表中显示了实验结果,并且可以发现:
NGCF-1 始终优于所有变体。我们将改进归因于 representation 交互(即 affinity 以及注意力机制等等函数。
同时,所有变体仅考虑线性变换。因此,这验证了我们 embedding 传播函数的合理性和有效性。
在大多数情况下,item 到用户的消息传递、只有用户到 item 的消息传递)和非线性变换的重要性。
联合下表和上表(所有方法性能比较结果表)可以看到:当将所有层的输出拼接在一起时, PinSage 和 GC-MC 获得更好的性能。这表明 layer-aggregation 机制的重要性。

dropout 效果:遵从 GC-MC 的工作,我们采用了 node dropout 和 message dropout 技术来防止 NGCF 过拟合。下图给出了 message dropout rate node dropout rate
在两种 dropout 策略之间,node dropout 提供了更好的性能。以 Gowalla 为例,设置 recall@20 (0.1514),这优于 message dropout 得到最好的 recall@20(0.1506) 。
一个可能的原因是:丢弃来自特定用户和特定 item 的所有 outgoing message 使得 representation 不仅可以抵抗特定边的影响,还可以抵抗节点的影响。因此,node dropout 比 message dropout 更有效,这和 GC-MC 工作的发现相一致。
我们认为这是一个有趣的发现,这意味着 node dropout 可以成为解决图神经网络过拟合的有效策略。

Epoch 对测试性能影响:下图给出了 MF 和 NGCF 在每个 epoch 的测试性能(recall@20)。由于空间限制,我们省略了 ndcg@20 指标,因为该指标的性能趋势和 recall@20 是类似的。
可以看到:NGCF 在三个数据集上表现出比 MF 更快的收敛速度。
这是合理的,因为在 mini-batch 中优化交互 pair 对时,涉及间接相连的用户和 item 。这样的观察证明了 NGCF 具有更好的模型容量,以及在 embedding 空间中执行 embedding 传播的有效性。

这里我们试图了解 embedding 传播层如何促进 embedding 空间中的 representation learning 。为此,我们从 Gowalla 数据集中随机选择了 6 个用户及其相关的 item。我们观察他们的 representation 如何受到 NGCF 深度的影响。
下图 (a) 和 (b) 分别显示了来自 MF(即 NGCF-0)和 NGCF-3 的 representation 的可视化(通过 t-SNE)。每个星星代表Gowalla 数据集中的一个用户,和星星相同颜色的点代表相关的 item 。
注意,这些 item 来自测试集,并且这些 item 和用户构成的 pair 对不会出现在训练过程中。
可以看到:
用户和 item 的连通性很好地反映在 embedding 空间中,即它们嵌入到空间中相近的位置。
具体而言,NGCF-3 的 representation 表现出可识别的聚类,这意味着具有相同颜色的点(即相同用户消费的 item)倾向于形成聚类。
联合分析图 (a) 和图 (b) 中的相同用户(例如 12201 黄色星星和 6880蓝色星星),我们发现:当堆叠三层 embedding 传播层时,他们历史item 的 embedding 往往更加靠近。这定性地验证了所提出的 embedding 传播层能够将显式的协同信号(通过 NGCF-3 )注入到 representation 中。

将来的工作:
结合注意力机制进一步改进 NGCF,从而在 embedding 传播过程中学习邻居的可变权重,以及不同阶连接性的可变权重。这将有利于模型的泛化和可解释性。
探索关于 user/item embedding 和图结构的对抗学习,从而增强 NGCF 的鲁棒性。这项工作代表了在基于模型的 CF 中利用消息传递机制开发结构知识的初步尝试,并开辟了新的研究可能性。